package org.xuyuji.Algorithm.chapter2;

import org.xuyuji.Algorithm.tools.StdOut;

public abstract class BaseTL {
	public abstract void sort(Comparable[] a);
	
	protected boolean less(Comparable v, Comparable w){
		return v.compareTo(w) < 0;
	}
	
	protected void exch(Comparable[] a, int i, int j){
		Comparable t = a[i]; a[i] = a[j]; a[j] = t;
	}
	
	protected void show(Comparable[] a){
		for(int i = 0; i < a.length; i++)
			StdOut.print(a[i] + " ");
		StdOut.println();
	}
	
	public boolean isSorted(Comparable[] a){
		for(int i = 1; i < a.length; i++)
			if(less(a[i], a[i-1]))
				return false;
		return true;
	}
}
